home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Arsenal
/
OS2 Arsenal v1.0 (Disc 2)(Arsenal Computer).ISO
/
os2_inet
/
progcsd.exe
/
SOCKET.H
< prev
next >
Wrap
Text File
|
1992-10-09
|
9KB
|
223 lines
/********************************************************copyrite.xmc***/
/* */
/* Licensed Materials - Property of IBM */
/* */
/* This module is "Restricted Materials of IBM": */
/* Program Number: 5798RXW */
/* Program Name: IBM TCP/IP Version 1.2 for OS/2 */
/* (C) Copyright IBM Corporation. 1990, 1991. */
/* */
/* See IBM Copyright Instructions. */
/* */
/********************************************************copyrite.xmc***/
/*
* Copyright (c) 1982, 1985, 1986 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that this notice is preserved and that due credit is given
* to the University of California at Berkeley. The name of the University
* may not be used to endorse or promote products derived from this
* software without specific prior written permission. This software
* is provided ``as is'' without express or implied warranty.
*
* @(#)socket.h 7.2 (Berkeley) 12/30/87
*/
#ifndef __32BIT__
#define _Packed
#define _Seg16
#define _Far16
#define _Cdecl
#endif
/*
* Definitions related to sockets: types, address families, options.
*/
/*
* Types
*/
#define SOCK_STREAM 1 /* stream socket */
#define SOCK_DGRAM 2 /* datagram socket */
#define SOCK_RAW 3 /* raw-protocol interface */
#define SOCK_RDM 4 /* reliably-delivered message */
#define SOCK_SEQPACKET 5 /* sequenced packet stream */
/*
* Option flags per-socket.
*/
#define SO_DEBUG 0x0001 /* turn on debugging info recording */
#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */
#define SO_REUSEADDR 0x0004 /* allow local address reuse */
#define SO_KEEPALIVE 0x0008 /* keep connections alive */
#define SO_DONTROUTE 0x0010 /* just use interface addresses */
#define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */
#define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */
#define SO_LINGER 0x0080 /* linger on close if data present */
#define SO_OOBINLINE 0x0100 /* leave received OOB data in line */
/*
* Additional options, not kept in so_options.
*/
#define SO_SNDBUF 0x1001 /* send buffer size */
#define SO_RCVBUF 0x1002 /* receive buffer size */
#define SO_SNDLOWAT 0x1003 /* send low-water mark */
#define SO_RCVLOWAT 0x1004 /* receive low-water mark */
#define SO_SNDTIMEO 0x1005 /* send timeout */
#define SO_RCVTIMEO 0x1006 /* receive timeout */
#define SO_ERROR 0x1007 /* get error status and clear */
#define SO_TYPE 0x1008 /* get socket type */
#if 0
#include "..\netinet\in.h"
#endif
/*
* Structure used for manipulating linger option.
*/
struct linger {
short l_onoff; /* option on/off */
short l_linger; /* linger time */
};
/*
* Level number for (get/set)sockopt() to apply to socket itself.
*/
#define SOL_SOCKET 0xffff /* options for socket level */
/*
* Address families.
*/
#define AF_UNSPEC 0 /* unspecified */
#define AF_UNIX 1 /* local to host (pipes, portals) */
#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
#define AF_IMPLINK 3 /* arpanet imp addresses */
#define AF_PUP 4 /* pup protocols: e.g. BSP */
#define AF_CHAOS 5 /* mit CHAOS protocols */
#define AF_NS 6 /* XEROX NS protocols */
#define AF_NBS 7 /* nbs protocols */
#define AF_ECMA 8 /* european computer manufacturers */
#define AF_DATAKIT 9 /* datakit protocols */
#define AF_CCITT 10 /* CCITT protocols, X.25 etc */
#define AF_SNA 11 /* IBM SNA */
#define AF_DECnet 12 /* DECnet */
#define AF_DLI 13 /* Direct data link interface */
#define AF_LAT 14 /* LAT */
#define AF_HYLINK 15 /* NSC Hyperchannel */
#define AF_APPLETALK 16 /* Apple Talk */
#define AF_MAX 17
/*
* Structure used by kernel to store most
* addresses.
*/
struct sockaddr {
u_short sa_family; /* address family */
char sa_data[14]; /* up to 14 bytes of direct address */
};
#if 0
struct in_addr {
u_long s_addr;
};
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
#endif
/*
* Structure used by kernel to pass protocol
* information in raw sockets.
*/
struct sockproto {
u_short sp_family; /* address family */
u_short sp_protocol; /* protocol */
};
/*
* Protocol families, same as address families for now.
*/
#define PF_UNSPEC AF_UNSPEC
#define PF_UNIX AF_UNIX
#define PF_INET AF_INET
#define PF_IMPLINK AF_IMPLINK
#define PF_PUP AF_PUP
#define PF_CHAOS AF_CHAOS
#define PF_NS AF_NS
#define PF_NBS AF_NBS
#define PF_ECMA AF_ECMA
#define PF_DATAKIT AF_DATAKIT
#define PF_CCITT AF_CCITT
#define PF_SNA AF_SNA
#define PF_DECnet AF_DECnet
#define PF_DLI AF_DLI
#define PF_LAT AF_LAT
#define PF_HYLINK AF_HYLINK
#define PF_APPLETALK AF_APPLETALK
#define PF_MAX AF_MAX
/*
* Maximum queue length specifiable by listen.
*/
#define SOMAXCONN 5
/*
* Message header for recvmsg and sendmsg calls.
*/
_Packed struct msghdr {
char * _Seg16 msg_name; /* optional address */
short msg_namelen; /* size of address */
struct iovec * _Seg16 msg_iov; /* scatter/gather array */
short msg_iovlen; /* # elements in msg_iov */
char * _Seg16 msg_accrights; /* access rights sent/received */
short msg_accrightslen;
};
struct iovec {
char * _Seg16 iov_base;
short iov_len;
};
_Packed struct uio {
struct iovec * _Seg16 uio_iov;
short uio_iovcnt;
off_t uio_offset;
short uio_segflg;
short uio_resid;
};
enum uio_rw { UIO_READ, UIO_WRITE };
#define FREAD 1
#define FWRITE 2
#define MSG_OOB 0x1 /* process out-of-band data */
#define MSG_PEEK 0x2 /* peek at incoming message */
#define MSG_DONTROUTE 0x4 /* send without using routing tables */
#define MSG_MAXIOVLEN 16
short _Far16 _Cdecl accept( short, void * _Seg16 , short * _Seg16 );
short _Far16 _Cdecl bind( short, void * _Seg16 , short );
short _Far16 _Cdecl connect( short, void * _Seg16 , short );
short _Far16 _Cdecl getpeername( short, void * _Seg16 , short * _Seg16 );
short _Far16 _Cdecl getsockname( short, void * _Seg16 , short * _Seg16 );
short _Far16 _Cdecl getsockopt( short, short, short, char * _Seg16 , short * _Seg16 );
short _Far16 _Cdecl listen( short, short );
short _Far16 _Cdecl recvmsg( short, struct msghdr * _Seg16 , short);
short _Far16 _Cdecl recv( short, char * _Seg16 , short, short );
short _Far16 _Cdecl recvfrom(short, char * _Seg16 , short, short, void * _Seg16 , short * _Seg16 );
#ifndef BSD_SELECT
short _Far16 _Cdecl select( short * _Seg16 , short, short, short, long );
#endif
short _Far16 _Cdecl sendmsg( short, struct msghdr * _Seg16 , short);
short _Far16 _Cdecl send( short, char * _Seg16 , short, short );
short _Far16 _Cdecl sendto( short, char * _Seg16 , short, short, void * _Seg16 , short );
short _Far16 _Cdecl setsockopt( short, short, short, char * _Seg16 , short );
short _Far16 _Cdecl shutdown( short, short );
short _Far16 _Cdecl sock_cancel( short );
short _Far16 _Cdecl sock_init( void );
short _Far16 _Cdecl socket( short, short, short );
short _Far16 _Cdecl soclose( short );